{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[1, 0, 2, 4]]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import igraph as ig\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 在权重图或无权重图中找到最短路径\n",
    "g = ig.Graph(\n",
    "    6,\n",
    "    [(0, 1), (0, 2), (1, 3), (2, 3), (2, 4), (3, 5), (4, 5)]\n",
    ")\n",
    "results = g.get_shortest_paths(1, to=4, output=\"vpath\")\n",
    "results\n",
    "# results = [[1, 0, 2, 4]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shortest distance is:  3\n"
     ]
    }
   ],
   "source": [
    "# 打印最短路径长度\n",
    "if len(results[0]) > 0:\n",
    "    # The distance is the number of vertices in the shortest path minus one.\n",
    "    print(\"Shortest distance is: \", len(results[0])-1)\n",
    "else:\n",
    "    print(\"End node could not be reached!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为图的边添加权重\n",
    "g.es[\"weight\"] = [2, 1, 5, 4, 7, 3, 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[1, 3, 5]]\n",
      "Shortest weighted distance is:  8\n"
     ]
    }
   ],
   "source": [
    "# 为了得到带有权重图的最短路径, 需要加入权重的参数. 此外改变了输出格式为'epath', 使获得的path为边的list以便计算路径总长度\n",
    "results = g.get_shortest_paths(0, to=5, weights=g.es[\"weight\"], output=\"epath\")\n",
    "\n",
    "print(results)\n",
    "# results = [[1, 3, 5]]\n",
    "\n",
    "if len(results[0]) > 0:\n",
    "    # Add up the weights across all edges on the shortest path\n",
    "    distance = 0\n",
    "    for e in results[0]:\n",
    "        distance += g.es[e][\"weight\"]\n",
    "    print(\"Shortest weighted distance is: \", distance)\n",
    "else:\n",
    "    print(\"End node could not be reached!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbgAAAGFCAYAAACPLubAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABsb0lEQVR4nO3dd1xUV9oH8N8MQ+9FmoAFGyBSxS42FBEFpRljjMaYGGuSza6JG80mpGc3WWt64qYDghQVUcGGIlKUIohiA+m9lyn3/cPX2Z2MiQwM3CnP9/PJH3cO994HMs4z59xzzsNhGIYBIYQQomK4bAdACCGEDAZKcIQQQlQSJThCCCEqiRIcIYQQlUQJjhBCiEqiBEcIIUQlUYIjhBCikijBEUIIUUmU4AghhKgkSnCEEEJUEiU4QgghKokSHCGEEJVECY4QQohKogRHCCFEJVGCI4QQopIowRFCCFFJlOAIIYSoJEpwhBBCVBIlOEIIISqJEhwhhBCVRAmOEEKISqIERwghRCVRgiOEEKKSKMERQghRSTy2AyDs6+npQUFBAa5evYrGxkb09vZCS0sLFhYW8PT0hIuLC7S0tNgOkxAJnZ2dyMvLQ15eHpqbm8Hn86GtrQ0rKyt4enrCyckJPB59xKkz+r+vphoaGvD999/jp59/wfXrhRDw+eBwNaCtqw8ujwehgI/ezg4wjAiamlqY5OaGNc+sxpo1a2BiYsJ2+ERNVVVV4euvv0ZUdAxKbhRDKBSCq6EBLV0DcLkaEAr56OloAwBo6+jC09MT69Y+i1WrVkFfX5/l6MlQ4zAMw7AdBBk6t2/fxjuRkfjt198gFIkwbMJUmIycCCObMTC0HgkNTW3xzwp6u9FefRetlaVouleAupJMaGlpY/XTq7Br1y44ODiw+JsQdZKfn493330XcUeOgMvlwcJ5OkwdnGFkOwYGliPA5WmKf1bQ3YnWqtsP37d381F/KxsGhoZ4bt067Ny5E5aWliz+JmQoUYJTEyKRCPv378ffdrwODR0DDJ+8BMM9/aClb9zna/S0NeJBTgoqs5PBFfXis08/xfPPPw8OhzOIkRN1xufz8cEHH+CdyEjomlhhuM8S2LrPh6ZO33tjXU01eJB9ApW5KdDT1sQXnx9EeHj4IEZNFAUlODVQWVmJiIiVSE+/APspgRjrtxY8LZ1+X4/f3YFbKd/iQc5JzF+wAL/9+issLCzkGDEhQGlpKUJCw1BYUICRs0Ix2nelRE9NVj3tzSg59jmqr19EaGgovv/+exgYGMgxYqJoKMGpuLt372LuvPmoa26D8/K/wGyUq9yuXX8rB8Xx/4a9rRXSUk9j+PDhcrs2UW/5+fmYv8APPdCCS8hrMLIdI7drVxdewI3EfXBznYiUlBMwNTWV27WJYqEEp8IqKiowfcZMNHXw4b4mErom8n/20FFfgWs/7oLtMFNcTL+AYcOGyf0eRL2UlJRgxoyZEOqYwH312zINo/dVa2Uprv34FlydxyMtLZV6ciqK1sGpKIFAgODg5Who7Ry05AYA+hbD4b4mEg+q6xAWHg6RSDQo9yHqobOzEwFLAsHn6Q9acgMAI9sxcH/mbeQVFOK5554blHsQ9lGCU1H//Oc/kZObA5fQHYOW3B7RNx8O5xV/wbmzZ/HFF18M6r2Iavv73/+OsrJyuEbsHLTk9oiR7RiMD9yMmJgYHD58eFDvRdhBQ5Qq6Pr16/Dw8MTwKUsxbuG6IbtvcdJB1F8/h+uFBRg1atSQ3ZeohgsXLsDX1xfjFq3HiOnBQ3JPhmGQH/UBBDU3UVxcREPsKoZ6cCro9TfegI6JJRznPj2k9x27cC242vp4c9euIb0vUQ2v/uU1mNiNh8PUpUN2Tw6HgwlLXkJ7Vzc+/PDDIbsvGRrUg1Mx9+/fx+jRozEhcBPsvP37dE5LxU1UXk1F490CdDXXQEvPCMZ24zFm/jPQt5BtZuS99DjcPfMTKioe0Ldh0mc5OTnw9vaG+1NvwtJpap/PE/R04d7FOLQ8KEFLxU0IutrhsvxlDPdYINP9S058i+aiM6iqrISurq6s4RMFRT04FfPVV1+Bp60La1ffPp9z98Jh1BRdgvloN0wIeAF2XovQdL8Ql7/YjraaezLd39ZzAUQAvvvuO9kCJ2rt4MGD0De1hMW4yTKdx+9sxZ2zv6KjrhyGVv0fFrf3CUBLczOioqL6fQ2ieKgHp2Jsh9uBZ+cOp8CX+nxOc1kxjGzHSCyi7WioQMaBLbByngHX0NdkiqEw9l8w7KnGjeIimc4j6onP58PI2ATDpy6H49ynZDpXJOCD39UObUNTtFTcQuaXr/SrBwcAV3/cDefhRjh75ozM5xLFRD04FVJVVYWqygqYjXaT6TwTByepHSL0zYdDf5gD2uvKZY7DdLQbbpbcQFtbm8znEvVz/fp1dHd1yvy+BQAuTxPahvJZqG0ywhXZ2dm01EWFUIJTITk5OQAgl10fGIZBb0cztPSMZD7XyHYMGIbB1atXBxwHUX05OTngcLgwtBnNahxGtmPQ0d6OW7dusRoHkR9KcCokNzcXOgbG0DEe+OSOqvyz6GltgLXrLJnP1bewB09LW5xwCfkzubm5MLKyH9D+qPLw6IshvW9VByU4FVJbWwtdI4sB7+7fUVeOG0c/h7H9BNi6z5f5fK6GBnQNzVBXVzegOIh6qK2thaaBOdthQFPPEDwtbXrfqhBKcCqkp6cHHI2B1bDtaWtC7k9vg6ejD7eIN8DhavTrOlyeJrq7uwcUC1EPPT09QD/fZ/KmwdN6GA9RCZTgVIiWlhYYkaDf5/O7O5D741sQdHfA85m3oWPU/2/VIqEAWlpa/T6fqA9NTU2AEbIdBoCHszLpfas6KMGpEBMTE/R2tPbrXCG/F1d/fgcdDRXweHo3DCz7X62bYRj0dLTAxMSk39cg6sPU1BTCLvZn3Ap6usDv7ab3rQqhBKdC3N3d0dFch572ZpnOY0RC5Md8hJbyG3CLeB0mDk4DiqOrsQq9XR3w8PAY0HWIenB3d0dr9T2IBHxW42irviuOh6iGgT2wIQrFy8sLwMNaV8PGeff5vJIT36LuRiaGjfcBv6sdlXmSC11t3ebKFEdrZalEPIT8GS8vLwgFfLTX3u/XEpeyzCQIujrQ3dYIAKgruYKelnoAgP3UpdDU0e/TdVqrSqGlpQ0XFxeZYyCKiRKcChk1ahSMTUzQXFYkU4Jrq74D4OEHQ13JFal2WRNcc1kxhtvZw8LCQqbziHpyc3ODhoYGmsqK+pXg7l08gu7mWvFxbdEl1BZdAgDYuM3tc4JrKSuG66RJD58JEpVACU6FcDgcRISH46eoODjOXQVuH2dUTn5OfruoC/k9qCk4i62bXpTbNYlq09PTQ8CSJTifdRoOU5bKvMxl9qsD3/e0p70ZdTcu47UPPxjwtYjioGdwKmbTpk3obKl/bE9sKFQXXkBvVzs2btzIyv2JctqyeTNaqu6guayYlftX5p4CT0MDa9euZeX+ZHBQglMxbm5umDZtOsoz4sEM8Z56IqEQZZfiYWdnj8zMTLS3tw/p/YnyWrBgAUY7jsH9S3FDfm9hbzcqc5Lx1FMrYW7O/oJzIj+U4FRQZOQ7aLxfhPLs5CG97/1LR9Beex9eXp44d+4cdu3ahdTUVAiFirHGiSiulpYW+C2Yj9riy6i5fnFI730r9UcIOlvxxhtvDOl9yeCjBKeC5s+fjxdffBG3Tx1CZ1P1kNyzvbYMt9N+gqurKywtLQEAnZ2diI6OxjvvvIPr168PSRxEufT29uLYsWP45Zdf8OabbyIoOBglxz9Hb0fLkNy/6V4hyi8n4r333sW4ceOG5J5k6FA9OBXV1tYGZ5eJ6IAOPNa8B5724FUp5ne1I/fQG7A01ELUb78iISEBVVVVUj/n6uqKsLAwWFlZDVosRDkwDIPc3FycO3cO8+bNg5ubGzgcDqqrq+Hk7AxNi1Fwe2qXVBkneepurUfOdzvgOm400tMvQENDMbYLI/JDCU6F5ebmwnfOHOgMG41JT705KEmO39WOaz//A2irRXr6BTg7O0MoFOLcuXNISkpCZ2enxM9raGhg3rx5WLJkCXR1By/pEsVVVlaGhIQEjB07FvPnz5ealp+WlgZ//8UwG+sN19C/DkqS625twLUfd8GAJ0LGpYtwcOj/zj1EcVGCU3Hp6enwX7wYWqbDMTFsB3RNLOV27c6GShTEfAhOVxNOnzoltbC7vb0dSUlJOHfuHH7/NjM0NERwcDCmT58OLpdGytVBa2srEhMTIRQKERQU9KdbYiUlJSEkJBTGI1zgsuIv0Db445+VVVv1XRREvQ9DbS7OnkmjoUkVRglODeTk5GDpsiDUNzRi7KL1GO61aEAldRiRCGVXjuL26f/A1sYGx48d/dPdHyoqKhAVFYWSkhKpNnt7e0RERGDs2LH9jocoNoFAgDNnzqC4uBhLly7FqFGj+nReWloaQkPD0MUXYlzAS7CeOHNAcYiEAtw9H4O753/D+PETkHz8GEaMGDGgaxLFRglOTZSUlDx8gH/jBsxGumLEzBBYjPEER4bek0goRP3NLJRdikPj/SJs2bIFH3zwAQwMDJ54LsMwyMvLQ0xMDOrr66Xavby8EBISQtO0VQjDMCgsLMSpU6cwY8YM+Pj4yPzFqra2Fi+99BLi4uJgOd4HDtODYTrSVabriAR81BRdwv2Lh9Fecx9vvPEGdu3aBW1tbVl/JaJkKMGpAYZhsHfvXhQVFaG8vBxXsrLRUF8HA3MbWLv7wXSEMwxtHB/7jE7Q3YnWqttouleI6mun0NFUC+/JPvjk448wZ84cmWPh8/lITU3F8ePHpepuaWpqYuHChVi0aBF9+Ci5qqoqxMfHw9bWFosWLYKOTv+rdTMMg5iYGLy5azdu3SyBkdUIWLsvgImDEwytR0FDU/q9wu9sQ2vVbTTeuYbqa6noamvCrNmz4e3lhffee4+e/6oJSnBqoKCgAPv37xcfOzs7Y8qUKTj4+eeIiY5Bd3cXOBwOjCztwdMzflh8UiQEv70JrXUPAAC6evp4amUENm3aJJdNlFtaWnDkyBFkZGRItZmammLFihWYPHnygKuTk6HV0dGBo0ePor29HUFBQXLdj5RhGJw9exYHDhxAQmIiBHw+OFwNGFnZQ1PXCOBqgBEK0NNaj/aGh7N4jYyN8eyaNdi4cSOcnZ1RXFyM69evIzQ0VG5xEcVFCU7FCQQCvP3226itfbgZLZfLxe7du2FjYwPgYY+quLgY2dnZuHr1KhobG1FcXAxnZ2eYm5vD09MTXl5emDBhAng8+W9deu/ePURFReHOnTtSbY6OjggPD8fIkSPlfl8iXyKRCBcuXMDVq1cREBAw6BM3enp6UFhYiJycHFy7dg0tLS3o7e2Fjo4Ohg0bBm9vb3h5eWHs2LFSk5i+/vprLFu2jJarqAFKcCru1KlTOHz4sPh43rx5iIiI+NNzDhw4gM2bNw92aGIMwyArKwuxsbFobm6Wap8+fTqCg4NhbGw8ZDGRvispKUFycjI8PT0xc+ZMhZ8VW1dXh7i4OLz4Im0IruqomoAKa21txdGjR8XH+vr6CAwMZDGix+NwOPDx8YGbmxtSUlJw8uRJ8Pn/LX556dIl5OTkYMmSJZg3bx6VM1EQ9fX1iI+Ph7GxMV544QXo6emxHVKfDBs2DJaWligsLMTEiRPZDocMIkpwKiwhIQHd3d3i46CgIOjr9602Fhu0tbWxbNkyzJgxA7GxscjJyRG39fT0IC4uDhcuXEBoaKh45wsy9Lq7u3HixAlUV1cjODgY1tbWbIcks8WLF+PgwYNwcnKiHUxUmGKPJZB+Kysrw8WL/9201s7ODrNmzWIxor4zNzfHCy+8gL/85S+wt7eXaKurq8Pnn3+OPXv2oKKigqUI1ZNIJEJGRgYOHjyIMWPGYOPGjUqZ3ABAR0cH06ZNw7lz59gOhQwiSnAqiGEYREVFSeweEh4ervDPRn5v3Lhx2LlzJ1avXg1DQ0OJtuLiYrz77rv49ddfqSzPELh79y727duHjo4ObN++XSWG9qZMmYKCggJ6/6gwGqJUQTk5OSgtLRUfe3h4YPz48SxG1H9cLhezZs2Cl5cXjh07hrS0NIj+v86dSCTC2bNnceXKFSxbtgyzZ8+m4SY5a25uRnx8PDQ1NfHcc89JfdFQZlwuF4GBgUhMTMSqVavYDocMAkpwKqa3txexsbHiYx6Ph5CQEBYjkg89PT2EhYVh1qxZOHz4MAoKCsRtnZ2d+O2333D+/HmEh4fDycmJxUhVA5/Px6lTp3Dnzh0EBQVJDRWrCkdHR5w/fx4PHjyAnZ0d2+EQOVOuMSvyRKdOnUJjY6P42M/PD8OGDWMxIvmytrbGli1bsHXrVql1TJWVlfj3v/+NgwcPitf9Edk8KmOzb98+WFtbY/PmzSqb3B4JDg5GfHy81IbgRPlRD06FNDY2Ijn5v1W8jY2N4e/vz2JEg2fixIlwcnLCmTNncPToUXR1dYnb8vLyUFhYiPnz5yMgIIC2Zeqj8vJyJCQkYPTo0diyZQu0tLTYDmlImJqaYtSoUbh27Ro8PDzYDofIESU4FXLkyBGJ9WMrVqwY0B6Aik5DQwMLFizAlClTkJiYiAsXLoi/hQuFQpw8eRKXL19GcHAwpk2bpnSTbIZKW1sbkpKS0Nvbi6effhqmpqZshzTk/Pz8sH//fkycOJHWWaoQ+hevIkpLS3HlyhXx8ciRI+Hj48NiREPH0NAQTz/9NP7+979LbRHV2tqKH374AR988IHExBvy8EtAamoqvvvuO0ydOhVr165Vy+QGAFpaWvD19cXp06fZDoXIESU4FSASiRAVFSXxWkREhNr1WOzt7fHqq6/ixRdflCq7U1ZWhk8++QTffPONxDNKdVVYWIg9e/ZAT08PW7duxejRo9kOiXWenp4oLS197HZxRDnREKUKuHz5MsrKysTHU6dOVdsPLA6HA09PT7i6uuLUqVM4ceKERFmerKwsXLt2Df7+/li4cKHaPGd6pKamBvHx8bCyssKmTZtUeghbVhwOB8HBwUhISMCzzz7LdjhEDijBKbmuri4cOXJEfKytrY3g4GD2AlIQmpqaCAgIwLRp0xAfH4/Lly+L2/h8PpKSkpCeno6QkBB4e3ur/LZfnZ2dOHbsGJqbm7FixQqVmlkrT/b29uDxeLh7926fK48TxaVeY1gqKDk5Ga2treJjf39/tX2O8jimpqZYt24dduzYIVV2p6mpCd988w3++c9/SvSAVcmjMjZffvklXF1dsWHDBkpuT7Bs2TIkJSWJNxQgyosSnBKrra1Famqq+Njc3Bx+fn4sRqS4Ro8ejR07dmDdunVSZXdKS0vx/vvv48cff5T4sqDsbt68ib1790IkEmHbtm2YMGEC2yEpBUNDQzg5OUlM2iLKiYYoldjhw4chEAjEx6GhoTTF+U9wuVxMnToV7u7uOHHiBE6dOiX++zEMg/T0dGRnZ4vL8gxGgdeh0NDQgCNHjsDQ0BAbNmxQ6AoSimru3LnYu3cv3N3d6TmlElPOf8EExcXFyMvLEx+PGzeOFqn2kY6ODoKDgzFz5kzExsYiNzdX3Nbd3Y3Y2FhcuHABYWFhcHV1VZrncz09PUhJSUFFRQWCgoJga2vLdkhKi8fjwc/PDydOnKBn2kqMhiiVkFAoRHR0tPiYw+EgPDxcaT6IFYWFhQVefPFFvPrqq1L7ENbW1uLAgQPYu3cvqqqqWIqwbxiGQWZmJg4cOIBRo0Zh48aNlNzkwNXVFVVVVaivr2c7FNJPlOCU0Pnz51FZWSk+njVrlsrvFziYxo8fj507d2LVqlVSw3lFRUV45513EBUVhY6ODpYi/GP37t3Dvn370Nraim3btilVj1MZLF++HPHx8WyHQfqJhiiVTHt7OxITE8XHurq6WLZsGYsRqQYNDQ34+vrC29sbx44dw5kzZyTK8qSlpSEzMxNBQUGYOXMm62V5WlpakJCQAC6Xi7Vr18LIyIjVeFSVtbU1jIyMUFJSorQlp9QZJTglk5SUhM7OTvFxYGCgStXoYpu+vj7Cw8Mxa9YsREdHo6ioSNzW0dGBX375BefOnUN4eDgrsxL5fD5SU1Nx69YtBAUFwcHBYchjUDdLlizBV199hbFjx6rd7kDKjv5vKZHKykqcP39efGxtbY25c+eyGJHqsrGxwbZt27BlyxZYWlpKtFVUVOCzzz7D559/jrq6uiGJh2EYXLt2Dfv27YOFhQW2bNlCyW2I6Ovrw8vLC+np6WyHQmREPTglwTAMoqOjJRafhoWFsT5Upso4HA5cXV0lyvJ0d3eL269du4bCwkIsWLAAixcvHrTp5BUVFUhISICDg4NalbFRJDNnzsTevXvh7e0NPT09tsMhfUQJTknk5+ejuLhYfOzq6oqJEyeyGJH6eDRlfMqUKUhISMDFixfFZXkEAgFOnDiBjIwMLF++HFOmTJHbMFZ7ezuSkpLQ3d2NlStXwszMTC7XJbLjcrlYvHgxjh49ivDwcLbDIX1EQ5RKgM/nIyYmRnzM5XIRGhrKYkTqycjICM888wx27tyJMWPGSLS1tLTg0KFD+Oijj3Dnzp0B3UcoFCItLQ3ffPMNJk+ejHXr1lFyUwDjx49Ha2srqqur2Q6F9BElOCWQlpYm8axn3rx5sLa2ZjEi9ebg4IDXXnsNGzZskEo89+7dw0cffYTvvvsOTU1NMl+7qKgIe/bsgba2NrZt2yaVSAm7goODJTY3J4qNhigVXEtLC44dOyY+NjQ0xJIlS1iMiAAPn895e3tj0qRJOHXqFJKTkyWqqWdmZuLq1avw9/eHn5/fE5+b1dbWIj4+HhYWFnjppZegq6s72L8C6QcLCwvY2NigoKAArq6ubIdDnoASnIJLSEiQqGcWFBRED7kViJaWFpYsWYJp06bhyJEjEhv09vb2IjExERcvXkRISAg8PT2lFmF3dXXh+PHjaGhoQHBwsNSMTaJ4/P39cfDgQTg5OSntfqXqgoYoFdi9e/dw6dIl8bG9vT1mzJjBYkTkj5iZmWH9+vX429/+hhEjRki0NTQ04KuvvsKnn36K8vJyAA8Xj1+8eBGff/45nJyc8MILL1ByUxI6OjqYPn06zp49y3Yo5Ak4zKPpYEShMAyDTz75BLdv3xa/9pe//AXjxo0b9HsfOHAAmzdvHvT7qCqRSITLly/jyJEjUuV3Hi096O7uhqenJ2bPnk1LPZSQSCTCvn37sG7dOtpFRoFRD05BZWVlSSQ3Ly+vIUluZOC4XC6mT5+Od955B4sWLZIYxmIYBvn5+SgrK4NQKAR9v1ROXC5XXBiVKC5KcAqop6cHcXFx4mNNTU2sWLGCxYhIf+jq6mLFihXYuXOn1KzX7u5uxMTE4J133kFhYSFLEZKBGDVqFPh8vnjYmSgeSnAK6OTJkxJTzBcuXAgLCwsWIyL9wTAMsrKyEBUVhRUrVmD79u1SZWxqamqwb98+7Nu3j9ZXKaHg4GAkJCRQT1xB0RQgBdPY2IiUlBTxsYmJCRYtWsRiRKQ/7t+/j8TERIwbNw5bt24VV1p/8803ceHCBSQmJkqU3yksLERRURHmzp2LwMBAmimrJExMTODo6Ijc3Fx4eXmxHQ75HUpwCiY2NlZiPdWKFSugra3NYkREFq2treJv9GvWrIGxsbFEu4aGBubMmYPJkycjKSkJ586dkyjLk5qaKlGWh3avV3wLFizAvn374OrqSvuEKhj616NAbt26hezsbPHx6NGj4ePjw2JEpK/4fD5SUlJw6NAhzJo167HJ7X/p6+tj5cqV2LVrF5ycnCTa2tvb8fPPP+O9997DzZs3Bzt0MkCampqYM2cOTp06xXYo5HcowSkIkUiEqKgoidciIiKoOrOCYxgGeXl52LdvH0xNTbF161aMHDmyz+fb2tpi+/bt2LRpE4YNGybR9uDBA/zrX//Cl19+ifr6ejlHTuTJw8MDd+/e7df2bGTw0BClgrh06ZLEbKxp06bJ9EFJhl5lZSUSEhJgZ2eHzZs393somcPhwM3NDc7OzkhLS8Px48clyvLk5uYiPz8fCxcuhL+/Pw1ZKyAOhyOecLJ27Vq2wyH/jxKcAujq6kJ8fLz4WFtbG8uXL2cvIPKnOjo6kJSUhI6ODoSHh8Pc3Fwu19XU1MSiRYswdepUJCQk4NKlSxJleY4fP45Lly5h+fLl8PHxoedzCsbOzg5aWlq4ffs2HB0d2Q6HgIYoFcKxY8fQ1tYmPg4ICPjT5zeEHUKhEGfPnsXXX38NLy8vrF+/Xm7J7X8ZGxtjzZo1eP3116U+KJubm/H999/j448/xt27d+V+bzIwy5Ytw9GjRyUKExP2UIJjWU1NDdLS0sTHFhYWmD9/PosRkccpLi7G3r17wePxsG3bNowdO3bQ7zly5Ej89a9/xfPPPw9TU1OJtrt37+LDDz/EoUOH0NzcPOixkL4xMDDAxIkTkZmZyXYoBDREybqYmBgIhULxcVhYmHjNFGFfXV0d4uPjYWpqio0bNw55GRsOh4PJkyfDzc0NKSkpSElJkVhGkpGRgdzcXCxevBgLFiyg944CmDNnDvbs2QMPDw/o6OiwHY5aowTHouvXr6OgoEB8PGHCBLi5ubEYEXmku7sbycnJqK2tRXBwMKysrFiNR0tLC0uXLsWMGTMQFxeHrKwscVtPTw/i4+ORnp6O0NBQuLu70+xbFmloaGDRokVITk6mZ+ksoyFKlgiFQsTExIiPORwOwsPD6YOJZSKRCBkZGTh48CDGjRuHF198kfXk9r/MzMzw/PPP47XXXoO9vb1EW319Pb744gt89tlnqKioYClCAgAuLi6ora1FXV0d26GoNUpwLDl37hyqqqrEx76+vhg+fDiLEZHbt29j37596Orqwvbt2+Hi4sJ2SH9o7Nix2LlzJ5555hkYGhpKtJWUlCAyMhK//PIL2tvbWYqQBAcHS8yOJkOPhihZ0NPTgxMnToiP9fT0sHTpUhYjUm9NTU2Ij4+HtrY21q9fDwMDA7ZD6hMul4uZM2fCy8sLx44dQ1pamvh5LsMwOHfuHLKysrB06VL4+vpS3bkhZmVlBVNTU9y4cQMTJkxgOxy1RAVPWdLQ0IC4uDhkZ2cjIiIC8+bNYzskMXUpeNrb24tTp07h3r17CAoKgp2dHdshDUhNTQ0OHz6M/Px8qTYbGxuEhYUpdK9UFXV1deHatWuYOnUqPX5gASU4lt2/fx92dnYK9e1a1RMcwzDIzc3FuXPnMHfuXJWblHH9+nXExMRIDIE/4urqirCwMJmfK9bU1IBhGKm6doQoMkpwRIoyJLjffvsNOjo6CAoKkik5lZeXIyEhAY6Ojio9rV4oFOLcuXNISkpCZ2enRJuGhgbmzZuHpUuX9mnbr7a2NixYsAAaGhqYMWMGNm/eTNvIDQKGYXD//n0MGzYM+vr6bIejEmiSySCg7wyDp6CgALNmzcKqVauQn58vsSbsz7S2tuLnn39GWloaVq9ejcWLF6tscgP+m8QiIyPh6+sr8SVAKBQiLS1NYvecJ/Hx8UF7ezv279+P0aNHIykpaTDCVlsCgQBff/015s2bh/fffx+9vb1sh6QSaJLJIOBwOBCJRLRXoBx1dHTg5ZdfxrfffovZs2fjyJEjmD59ep/rb508eRLTp0/HqFGjBjlSxWJgYIBVq1bB19cXUVFRKCkpAfCwhllfq8QbGhpi3759aGpqwpIlS1BbW0sbPssZj8fDCy+8gNzcXPz222/g8/n4+OOP2Q5L+TFEbmJjY5n33nuP6enpEb8mFApZjKh/9u/fz3YIEm7fvs0YGxszPB6P2bt3L3P//n2Gz+fLdA2RSDRI0SkPkUjEXL16lXn//feZzs5Omc4VCoXMyZMnGS6Xy0RGRjJtbW3ia5KBEwgEDMMwTHNzM/PRRx8xurq6THFxMctRKT/qYsiJSCTC+vXr8eabb2LevHmIjo4GAHEvjqFhy36zsLCAr68vbGxsMHnyZDg4OIDH4yErKwsXL17ErVu3nngNVZpE0l8cDgfu7u7YsWOHzFuOtbS0YPfu3XBzc8OKFSvESyno7yq7x30WPJpkZmxsjODgYLi4uOCLL74Y6tBUDiU4OamsrISlpSWMjY3R09ODjRs3IiwsDDk5OQD++0FAu4zLzsjICDt27EBDQwNOnjyJjIwMzJw5E1OnTsWsWbMwfvx4bNy4Effv32c7VKXQn6HzX375BVeuXMGWLVswbty4QYhK9T2q8ff7LwWPPhMePU92dHRES0uLxB61pH8owcmJnZ0d/vGPf2D48OF46aWXEBwcjLNnz2LZsmV47bXXUF1dDQDYuXMnioqKWI5W+fj4+GDDhg34xz/+gcWLF0NbWxtff/01fvrpJ6xfvx5fffUVFZocJPfu3cNHH32EgIAA+Pn5gcejR/eyEIlE2LFjB6ZNm4aQkBB8/PHHOHPmjHgbr0dfOB5Nejp37hxKS0upZJYc0DtVjhYvXox///vfyMvLw3fffYeYmBh8+eWX+Oabb3DixAmMHTsWx48fxzPPPAMANBFFBjweD1u2bEFGRgZcXV0RGRkJa2trcDgcrFy5Era2toiMjMShQ4co0ckBwzDiyVKPJphs3LhRav9L8mRcLhccDgd5eXloa2tDWloaWlpaoKOjA2dnZ8yaNQt2dnZwcHBAamoqkpKSMGrUKDz77LNsh678WH4GqHLS09OZESNGMJmZmQzDPHxo/NlnnzEuLi6MpqYmY2try8TExLAc5Z9TtEkmjwgEAiYtLY25f/+++LVHk02KiooYV1dXZtKkSWyFpzL+d+JIRkYGo6enx2zevJlpbGyUaid9093dzRgZGTEbNmxgbt68yZw9e5b55JNPmJCQEMba2prR0NBgeDweY2lpycyaNYuJj49nO2SVQAlOjgQCAdPd3c0sXryY8fDwYKqqqsRtq1atYvT19Znhw4czJiYmTFhYGNPd3c1itH9MURPckyxZsoQZPXo0U1NTw3YoSqu3t5f58ccfmZs3bzLd3d1MSEgIM2LECCYjI4Pt0JTeZ599xhgaGjJnzpyReL23t5cpKSlhbty4wWRlZTFdXV3sBKiCaHxMjjQ0NKCtrY29e/eio6MDZ86cAQDk5uYiOjoa7777Lg4dOiSeCUhriQaG+d1stPr6emhpacHExISdgFRAdHQ01qxZg40bN+KNN95AQkICtm7dCh8fHwA0G3ggXn75ZVhbW2Pv3r2oqakB8HDRvaamJsaNG4fx48fD29ubiqTKET2DkzOGYTBmzBgEBgbi1VdfxeTJk/H666/D1dUVwcHBGDlyJObPn08zpOTg0Wy0pqYm/PTTTygoKMCnn37a58XfRNrTTz8NQ0NDvPzyyzhz5gwMDAxgbm4OoVAofpb0ON3d3fTB3AcHDhzAkiVLEBISgqeeekqh9qBVSSz3IFVWRUUFM2nSJGbGjBmMpqYmExUVJV7MyTCK/RxDUYYon7SY++bNm8zPP//MbNq0iTE0NGSWLVvGVFZWDlF0qm/Pnj2Mrq4uY2Vlxbz88stMdXX1Y3/u+vXrzCuvvMKkpaVJvMfJ43l7ezOTJ09mmpqa2A5F5dFmy4Poxx9/xObNm7F48WLs3btXoSpD/xm2N1vm8/k4deoUOjs7ERoa+tifqaysxLx589Da2goej4e//vWv2Lp16xBHqvpaWlrw3HPPoaSkBJmZmVKbAAuFQkRGRoorF9ja2iI8PBxOTk5shKsUGhoaIBKJMGzYMLZDUXmU4AZZUVERNDU1MXbsWLZD6TO2EhzDMLh69SrOnj0LX19feHp6/ulOGYmJiWhtbUV4eDgNSw6ylpaWx67Lunz5Mr7//nup193c3BAWFkYf4o/B/P8SDDL4KMERKWwkuAcPHiAhIQEjR46En58fJSwlIRQKcebMGRw9ehRdXV0SbTweD/Pnz0dAQAA9nyOsoAQnJ52dncjKysKMGTOUfqeHoUxw7e3tSExMRG9vL4KCgmBqajok9yXy1dbWhsTERFy4cEFqpqWRkRGWL1+OqVOn0sYGT0C9O/miBCcn0dHRSE1NhZWVFcLCwuDq6sp2SP02FAlOKBTi7NmzKCwsRGBgIBwdHQf1fmRolJeXIzo6Gjdv3pRqGzFiBCIiIuj/9R8QCAT46aefsGbNGvoiICf0V5SD6upq8Zq3mpoaREdHQyAQsByV4iosLMSePXugp6eHrVu30geeCrG3t8err76KF198Eebm5hJt9+/fx8cff4xvv/0WTU1NLEWouHg8HkaMGIGMjAy2Q1EZyj2WpiBiYmIkqgSEhoYq/TDlYKipqcGRI0dgZWWFTZs20XMZFcXhcODp6YmJEyfi9OnTSE5OlqhQfeXKFVy7dg3+/v70vPV3Zs+ejb1798LT01PmkkZEGn0KD1BBQQEKCwvFx87Ozpg0aRKLESmerq4uHDt2DE1NTQgJCaGZdWpCS0sLAQEBmDZtGuLj43H58mVxW29vLxITE5Geno6QkBB4eXnRsyc83A3J398fx48fR0hICNvhKD0aohwAgUCAmJgY8TGXy0VYWBj9Q/1/IpEI6enp+OKLLzBx4kRs2LCBkpsaMjU1xbp167Bjxw6MHDlSoq2xsRFff/01/vnPf6KsrIydABWMk5MTGhoaxNt5kf6jBDcAZ8+elXgTzpkzB7a2tixGpDhu3ryJvXv3QigUYtu2bZgwYQLbIRGWjR49Gjt27MDatWul1tSVlpbi/fffx48//ojW1laWIlQcwcHBSEhIYDsMpUdDlP3U2tqKo0ePio/19fURGBjIYkSKoaGhAfHx8TAwMMCGDRukdr4g6o3L5WLatGnw8PBAcnIyTp8+LZ6QxTAM0tPTkZ2djcDAQMydO1dtn2VbWlrC3NwcRUVFcHZ2ZjscpaWe7x45SExMlFjYumzZMrX+MO/p6UFKSgoqKioQFBREPVnyp3R0dLB8+XLMnDkTsbGxuHr1qritu7sbhw8fxvnz5xEeHo6JEyeq5bB/QEAAvvjiC4wfP542Ze4nGqLsh/LycqSnp4uPbW1tMWvWLBYjYg/DMLhy5QoOHDiAkSNHYuPGjZTcSJ8NGzYMGzduxCuvvILhw4dLtNXW1mL//v3Yt2+feK9LdaKrqwsfHx+cP3+e7VCUFiU4GTEMg+joaIndGsLDw9XyG9a9e/ewb98+NDc3Y9u2bZg0aZJaftMmAzdhwgT8/e9/x6pVq6RGQq5fv4533nkHUVFR6OjoYClCdkybNg15eXlob29nOxSlREOUMsrNzZXYpcHd3V3tdk5vaWlBQkICOBwO1q5dCyMjI7ZDIipAQ0MDvr6+8Pb2xtGjR3H27Fnx+lKRSIS0tDRkZmYiKCgIM2fOVIsvlVwuF4GBgUhKSsJTTz3FdjhKh3pwMujt7UVsbKz4mMfj/WE5F1XE5/Nx4sQJ/PDDD5gzZw6eeeYZSm5E7vT19REREYFdu3ZJTbDo6OjAL7/8gvfeew8lJSUsRTi0xowZg+7ublRUVLAditKhBCeDU6dOoaGhQXy8YMECtVjXxTAMrl27hn379sHc3BxbtmyBg4MD22ERFWdra4tt27Zh8+bNsLS0lGirqKjAp59+ii+++AJ1dXUsRTh0goKCkJCQILWRNflzNETZR01NTThx4oT42MjICIsXL2YxoqFRUVGBhIQE2NvbY8uWLbStEhlSHA4HkyZNgrOzs7gsT3d3t7j96tWrKCgogJ+fH/z9/VV2+zczMzPY29sjLy8P7u7ubIejNCjB9dGRI0ck9tNbsWKFyv5jAh6WsUlKSkJ3dzdWrlwJMzMztkMiaozH48HPzw9TpkxBQkICLl68KO7NCAQCJCcn49KlS1i+fDmmTJmikrvxL1q0CPv374eLiws0NTXZDkcpULmcPrh9+zY+/vhj8fHIkSOxY8cOlfxHJBQK8e6778LY2BiBgYEYM2YM2yERIqWsrAxRUVEoLS2Vahs5ciQiIiIwevRoFiIbXFlZWWhoaIC/vz/boSgFSnBPIBKJ8NFHH+HevXvi1/72t7+pZImXoqIipKSkoL29HX//+99VMoET1cEwDHJycnD48OHHlt+ZOnUqgoODVaqILsMw2L9/P9asWSO13RmRRp9gT5CZmSmR3Hx8fFQuudXW1uLLL79EcXExNm7cCDMzM0puROFxOBx4e3vjnXfewdKlS6WG7S5fvozdu3fj+PHjEo8XlBmHwxFPOCFPRs/g/kR3dzfi4uLEx1paWlixYgWLEclXV1cXjh8/joaGBgQHB8PKyortkAiRmZaWFgIDAzF9+nQcOXIEV65cEbf19vYiISEB6enpCA0NhYeHh9JvRuDg4AAOh4N79+5JVWcgkuhr+p9ITk6W2Nnc399fJYY7RCIRLl68iC+++AJOTk544YUXKLkRpWdmZob169fjr3/9q9QyloaGBnz55Zf49NNPUV5ezlKE8hMUFITExERaNvAElOD+QF1dHU6fPi0+Njc3h5+fH4sRyUdpaSn27t2L3t5ebNu2jXYqJypnzJgxeOONN7BmzRqpjQhu3ryJ9957Dz///DPa2tpYinDgjIyMMGHCBGRlZbEdikKjIco/cPjwYXEZDwAICQlR6jVgjY2NSEhIgI6ODp5//nkYGBiwHRIhg4bL5WLGjBnw9PREcnIyUlNTJcrynD9/HllZWeKyPMq47de8efOwd+9euLm5QVtbm+1wFBIluMcoLi7GtWvXxMdjx46Fp6cnewENQG9vL1JSUlBeXo6goCCpHdsJUWW6urpYsWIFZs6cicOHDyMvL0/c1tXVhZiYGFy4cAFhYWGYOHEii5HKjsfjYcGCBUhJScGyZcvYDkch0RDl7wiFQkRHR4uPORwOIiIilO7BNMMwyMrKwv79+2Fvb4+XXnqJkhtRW5aWlti0aRO2b98OGxsbibbq6mrs27cP+/btQ3V1NUsR9o+rqysqKiokthAk/0UJ7nfS09NRWVkpPp45cybs7e1ZjEh2ZWVl2L9/PxoaGrB161a4u7srXYImZDA4Oztj165dWLlyJfT09CTaCgsL8fbbbyMmJgadnZ0sRSibR8sG4uPj2Q5FIdEQ5f/o6OiQWF+iq6uLoKAgFiOSTWtrq3hDVloISsjjaWhoYO7cuZg8eTKSkpJw/vx5ibI8p0+fRmZmJpYtW4aZM2cq/JpQW1tbGBgY4ObNmxg3bhzb4SgUSnD/4+jRoxIFFZcsWQJDQ0MWI+obgUCAtLQ03LhxA8uWLaO1MYT0gYGBAZ566inMnj0bMTExKC4uFre1tbXh559/xrlz5xAREaHwiSMwMBBff/01xowZo/AJeSjRX+L/VVZW4uzZs+JjKysrzJ07l72A+oBhGOTn52Pv3r0wMTHB1q1bKbkRIqPhw4dj+/bt2LRpk1T5qwcPHuBf//oXvvrqK9TX17MU4ZPp6+vDw8MDly5dYjsUhUI9ODxMFDExMeJhCgAICwsDj6e4f57KykokJCRg+PDh2Lx5M00TJmQAOBwO3Nzc4OzsjLS0NBw7dgw9PT3i9pycHOTn54vL8ijiv7eZM2di79698PLygq6uLtvhKATF/QQfQgUFBSgqKhIfT5w4Ea6urixG9Mc6Ojpw9OhRtLe3Izw8HObm5myHRIjK0NTUxKJFizB16lTEx8cjIyNDvFsIn8/H8ePHcenSJaxYsQI+Pj4KNXlLQ0MD/v7+OHbsGEJDQ9kORyGo/RClQCBATEyM+JjL5SIsLIzFiB5PKBTi3Llz+Prrr+Hh4YH169dTciNkkBgbG+PZZ5/F66+/LrW5enNzM7777jt8/PHHEhuxKwInJyc0NjaipqaG7VAUgtonuLS0NNTW1oqP586dC2traxYjknbjxg3s3bsXGhoa2LZtm8I/8CZEVYwcORJ//etfsX79eql9aO/cuYMPPvgAhw4dQktLC0sRSlu+fDktG/h/aj1E2draimPHjomPDQwMsGTJEhYjklRXV4cjR47AzMwMGzdupHF1QljA4XDg4+MDNzc3nDx5EikpKeDz+eL2jIwM5ObmIiAgAPPnz2e92vawYcNgaWmJwsJCpdudRd7UOsHFx8eju7tbfBwUFAR9fX0WI3qou7sbycnJqK2tRVBQkML1KAlRR9ra2li6dCmmT5+OuLg4ZGdni9t6enpw5MgR8bZfbm5urD6fW7x4MQ4ePAgnJyel3GdTXtR2iLKsrExiSq2dnR1mzpzJYkQPF5lmZGTg4MGDGDt2LF588UVKboQoGHNzc2zYsAGvvfaa1C5H9fX1+Pzzz/Hvf/8bFRUVLEUI6OjoYNq0aRJLn9SRWiY4hmEQFRUlUUspPDyc1QWSd+7cwb59+9DZ2Ynt27er/dACIYpu7Nix2LlzJ5555hmpDSFu3LiByMhI/PLLL2hvb2clvilTpqCwsJC1+ysCtRyizM7ORmlpqfjY09MT48ePZyWWpqYmJCQkQEtLC+vXr6cyNoQoES6Xi5kzZ8LLywvHjh1DWloahEIhgIdfpM+dO4esrCwsXboUvr6+QzpcyOVyERgYiMTERKxatWrI7qtI1C7B9fb2IjY2VnzM4/EQEhLCShynTp3C3bt3ERwcDDs7uyGPgRAiH7q6uggNDcWsWbMQExODgoICcVtnZyeioqJw/vx5hIeHD2mRYUdHR1y4cAEPHjxQy88YtRuiTElJQVNTk/jYz88PFhYWQ3Z/hmGQk5OD/fv3w8bGBps3b1bLNx4hqsjKygpbtmzB1q1bpZ6fV1VVYc+ePThw4MCQrlN7VG3gfx/JqAu16sE1NjYiJSVFfGxiYgJ/f/8hu395eTkSEhLg6OiIrVu3sj6dmBAyOCZOnAgnJyecO3cOSUlJEuV38vPzcf36dcyfPx8BAQGDvvzH1NQUo0aNwtWrV5W2cHN/qVWCi4uLk1i/snz5cujo6Az6fdva2pCYmAiBQIDVq1fDxMRk0O9JCGGXhoYG5s2bBx8fHyQmJuL8+fPiXpRQKMTJkyeRkZGB4OBgTJ8+fVAnufn5+WH//v1wdXVVqy/WajNEWVpaiqysLPHxqFGj4OPjM6j3FAgEOH36NL777jtMnz4dzz77LCU3QtSMgYEBVq1ahTfffFNqMltbWxt+/PFHfPDBBxIT3+RNS0sLvr6+OH369KDdQxGpRYITiUSIioqSeC0iImJQvzEVFhZi7969MDAwwNatWzFq1KhBuxchRPHZ2dnhlVdewcaNG6We+5eVleGTTz7BN998g8bGxkG5v6enJ27fvo3m5uZBub4iUoshyoyMDJSVlYmPp06dOmgJp7q6GkeOHIGNjQ02bdo0JEOghBDlwOFw4OHhgYkTJ+L06dNITk6WKMuTlZWFa9euYdGiRVi0aBG0tLTkeu9HE07Wrl0rt+sqMpVPcF1dXRIbj2pra2P58uVyv09nZyeOHj2K1tZWhIWFDenMTEKIctHU1MTixYsxbdo0HDlyBJcvXxa38fl8HD16FBcvXkRISAi8vb3ltu2Xvb09NDU1cffuXbUYVVL5Icrjx4+jtbVVfLx48WK5PgcTiUQ4f/48vvrqK7i5ueH555+n5EYI6RMTExOsW7cOr7/+ulTCaWpqwjfffINPPvkE9+/fl9s9ly1bhsTERIkCz6pKpRNcTU0NUlNTxccWFhZYsGCB3K5fUlKCvXv3AgC2bdvG2m4ohBDlNmrUKPztb3/DunXrpL6A3759Gx988AF++OEHuZTlMTQ0hIuLC65cuTLgayk6lR6ijI2NFW+bAwAhISFymSJbX1+P+Ph4GBkZYcOGDQpRgYAQoty4XC6mTp0Kd3d3pKSk4OTJkxAIBAAebhBx8eJF5OTkICAgAPPmzRvQZ9mcOXOwd+9euLu7q/Q8AYVPcAzDoKCgAFlZWcjJyUF2Ti7q6urR29sLLS1NWFhYwMvTA15eXpg8ebK4TEVRURHy8vLE1xk/fjw8PDwGFEt3dzdOnDiBqqoqLF++nHb6J4TInY6ODoKCgjBjxgzExsYiNzdX3Nbd3Y24uDikp6cjNDQUkyZN6tfzOR6PBz8/P5w4cQLBwcHi1wUCgfizNicnB7nX8tDc1AQ+XwAdHW0Mt7WFt7cXvL29MWXKFIwZM0Yev/Kg4TAKun9LW1sbfvrpJ+zbfwDFRdfB4XBgZGkPPWtHaBuagavBg0goQE97Ezpr7qC1ugwMI8LYceOxedNLqKqqEm/JxeFw8Oabb/Z7SyyRSIQrV67g0qVL8PPzg6urqzx/VYVz4MABbN68me0wCCF4+CgkOjoaDx48kGpzcnJCeHg4bG1t+3Xtzz//HGFhYRAIBPjmm29w8PMvUFVZAa4GD8Y2o6BnNQqaukbgamhAKOCju7kWnTV30FZfCQCYNm06tm7dghUrVkBbW3tAv+dgULgEJxQK8emnn+Ltd95BZ2cnLCdMwXAvf5g4OIOn/cdb2gh6u9FSVoyK3BTUFmWAq8GFu5sb3N3dMXfu3H7vpn337l0kJSXByckJc+fOBY+n8J3eAaMER4hiEYlESE9PR0JCglT5Gy6XC19fXyxdulTmxyW3b9/Ghg0bcP7CBXC4GrBy9cVwDz8Y2Y4Bl/fHQ6D8rnY03L6Gypxk1N/Og7nFMHz26b+wevVqVgu9/p5CJbgbN25gzbNrkZ11BfZTlmLkjOXQMR4m83W6WxtQlpGA+5fiYTFsGJISEzBlyhSZrtHc3IyEhATweDwsXboURkZGMsehrCjBEaKYHi1HOnPmjNQsSH19fSxbtgyzZs3qU1mes2fP4tm161BZWYVRc56Cnbc/NHVlL9fVXleOu2d/Q1XBOSwJDMTXX30FGxsbma8zGBQmwcXGxmLVqqehbTwMTkHbYeLgNOBrtlTcQlH8Z+hqrMKh77/H008//cRz+Hw+Tp8+jdu3b2PZsmVwcHAYcBzKhhIcIYqturoaMTExKCwslGqztbVFeHg4nJwe/xnKMAw++OAD/P3vf4f5qIlwCtoOPbOBJ6Ta4gyUHDsIbQ3g+LFjmDZt2oCvOVAKkeB++uknPPvss7BymQnn4O3Q0JTfWK5IwEdx0gFUXkvFV199heeff/6xP8cwDK5du4YzZ87A19cXnp6eCtXVHkqU4AhRDgUFBYiJiXls+R13d3eEhoZi2LD/joIxDIOdO3fiww8/xOg5T8FxzlPgyHHLwt7OVhT89j46au7gRPJx+Pr6yu3a/cF6gjt69CiCgoNh4zYXzsu2gsOVf8VbRiTCjeNf4kHWcURFRSEsLEyivaKiAvHx8Rg5ciT8/Pzkuj2OMqIER4jyEAgEOHv2LI4ePYquri6JNh6PJy7Lo6Ojg48//hg7duzAuEXrMXKG/Hd0AgBhbzfyfn0XXTWluHD+/IBnrw8EqwmuuroaTs7O0LYej0kRbwxKcnuEEYlQcPifaLuXi6Lr1+Hg4ID29nYkJiaip6cHwcHBMDU1HbT7E0LIYGptbUViYiLS09OlipsaGRlh3Lhx2LhxI0bMDMXYBWsGNRZBTxdyD70BCz0u8vOuDXrNuz/CWoJjGAbBy5fjVNp5TNm0H1r6xoN+T35XOzI/34Lpkz3w+o4dKCwsRGBgIBwdHQf93oQQMhTKy8sRHR2Nmzdvil8TCASIjTsC6Ftg8vP/BLcPk1AGqr22DJlfbMerr7yMjz/+eNDv9zisbdUVExODxIQEjFvy0pAkNwDQ1DXA+MAtOH3qFNLS0rB161ZKboQQlWJvb49XX30VL7zwAszNzQEAubm5aGtrg8vyl4ckuQGAgaUDRs99Gv/6178kanEOJVZ6cAzDwM3dA9XdmvBY/Y+hvj3yfvsABr21uHWzRG0nkhBCVF9vby8SEhLw9OrVsJuyDGP91g7p/UVCIa58vgULZ09BTEzMkN4bYGmrrsuXL6MgPw+ez7wt03nttfdx+8wvaK0sRU97MzQ0taE/zB4jZ6yA5YS+r3Ozn7oU2d+9jrS0NMyfP1/W8AkhRCloaWmhoaEBAr4A9j5LZDpXJOCjNO0nVOWdAb+rHQZWIzF2/jMwH9P3SSNcDQ3YegfgSPy3qKys7PeOK/3FyhDlgYMHYWBuA3NH2WbXdDXXQtDTBVv3+ZiweANG+0YAAK79EokH2Sf6fB3TES4wth6J/fv3y3R/QghRJgzDYN/+A7CcMEXmTTMKj3yG+5fiYT1pDiYEvAAOl4vcn/6BpvvXZbqOjfs8cLk8fP311zKdJw9DPkTJMAxMTc1g7rEYY+Y9eeH1E68nEuLyFy9DKOBj5rYv+nze3QuHUZ4ejfa21j6t+ieEEGVTXl4OBwcHuK3cCSvn6X0+r+VBCTK/+gvGLXwOI2euAAAI+b24dGAztPSNMWXDP2WKI//wJxiu1YnsrKEt0TPkPbh79+6hpaUZxnbj5HI9DlcD2kYWEHS3P/mH/4ex3Th0d3Xixo0bcomDEEIUTU5ODgDI/Hlbc/0iOFwu7Lz9xa9paGphuKcfWspvoLulTqbrGQ8fh4L8fPD5fJnOG6ghT3CP/uBGtv0vsyDo7UZvRws6G6tw/1I8GkpzYDbaTaZrGNo4SsRDCCGqJicnB7pGZtA2NJfpvNaqO9AzHw6ejp7E68bDx4nbZWFkOwa9vT0oKiqS6byBGvJJJtevX4eekRm0Dfq/qPrmiW/++8yNw4WV8zQ4LXlJpmto6ujD0NzmsXu5qYOqqiqF2RCVEDI4rl+/Dn3LkTLPFu9pb3zsZ7S2odnD9rZGma5naD0KAFBYWAg3N9k6IwMx5Amura0NPJ2BVcAeMS0IVi4z0dPWgOrCdDAiEURC2bu+PB09dHR0DCgWZWVnZwcXFxc8/fTTeOqpp9RyU2lCVF1rWxs0tPWe/IO/I+L3PrZcDpenJW6XhYaWLsDhDPnn7ZAPUQqFwgFv7qk/zB7mju6wdZ8Pz9VvQdjbjas/vyO1Pc2TcDhcCIXCAcWirBiGwZ07d/DGG29g9OjR8PX1xVdffSUuEksIUX5CQf8+b7maWhAJpDsNIkGvuF0WHA4HXO7Qf94OeYLT1dWFkN8j12taucxAa8UtdDZUyHSeSMiHjo6OXGNRJl9++SUuXLiAF154AUVFRdi4cSNsbGwQHByMmJgYdHd3sx0iIWQAHn7eytbbAgBtAzP0tEt/2X00NPloqLKvGJEQIqFwyD9vhzzB2dvbo7O5rl9/9D/yKGEKuvve/RUJhWhvqIK9vb3c4lA2HA4HM2bMwMGDB1FVVYXExESsWLECp0+fxsqVK2FlZYV169bh9OnTMveOCSHsc3CwR29ztcznGdqMRmdDBQTdnRKvtzx4uL+lkc1oma7X2VAJAEP+eTvkCc7Ly+thcqm5K/O5Pe3NUq+JhAJUXksDV1Mb+sP6/hypo74cgt4eeHl5yRyHKuLxeAgMDMQvv/yCmpoa/Oc//8H06dPx888/Y9GiRRg+fDjbIRJCZOTl5YXWmjIIemUbjbFyngFGJJLYQEMk4KPy6ikY242XedF4a2UpAMDT01Om8wZqyCeZTJo0CRo8Hlorb8PYbrxM5xYn7YeguxOmIydC28gcvW1NqMo/i476Bxi3aD142n0vydBaeRvA0P/BlYG+vj5Wr16N1atXo76+Hr/99ht++eUXtsMihMjI29sbDCNCe/VdmDg8vsL345jYj4eVy0zcOv0f9HY0Q8/cFpVXU9HVXAvn4O0yx9FaWQqHkaNgZibb0OZADXkPTkdHB56eXqi/Kfvu0lYTZwEcLsqzjqM46SDuZcRD28gC7qt2yVy8r+FWFpxdJsLIyEjmONSJhYUFtmzZgkuXLrEdCiFERi4uLjAwNERdiew7iExc8SocpgWhMu8Mbhz/EiKRAB5P74bZyIkyXYdhGDTdzsXsmTNkjmGgWNls+cUXNmDDhg3obKqGnql1n8+zcfWFjevAS6B3tzagtjgDOz/7bMDXUlbPPvsslQoiRMVpaWlh3dq1+ObQT3Ccu+qxU///iIamFsYveg7jFz03oBga7+ShtbYcGzZsGNB1+oOVcjmdnZ2wtrGB+aSFGLdw7VDfHrfP/Iqyi4dx985terZECFFpxcXFcHZ2hmvoX2EzaeAdBFnl/fY+TJlmFF0vHPLyZKxUE9DT08OG559HZfZxmfc0G6ietiaUXU7AGMfR+Oc//4m0tDS1XQtHCFF9Tk5OmDt3Hu6f/02us9f7ouVBCWpvXMb2bVtZqb3JSg8OAJqbm+Hk7AKhgQ3cV/9jSH55hmGQ9+u7aL2fj7DQUOjqPpyUYmNjg/DwcDg7Ow96DIQQMtSKiorg7u6B4T6BGDfAIce+EvJ7kfXldjjaWeJK5mXweEP/RIyVHhwAmJiY4Ltvv0HdrRxU5J4ckntW559F7Y1MLA0MFCc34OG+jHv27MGBAwdQU1MzJLEQQshQcXZ2xjvvvI37GfFoLiseknveTvsJXU01+PGH/7CS3AAWExwALF68GM8//zxKjn2BhtKrg3qvxnuFKE7cj6eeegq//vorIiIioKcnuUdbfn4+3n77bcTGxqKrq2tQ41FkBw4cYDsEQoicvfbaa/CZ7IP8qPfQUS/brk+yepCTgnsX4/Duu5FwcXEZ1Hv9GdaGKB/p7e1FUHAwTqemYVLETliMlf/C68Y7+cj77V3MmDYFycePi7eLaW9vR2JiIs6fPy+1U4ehoSGCg4Mxffp0cAe4d6ayOXDgADZv3sx2GIQQOauvr8eMmbPwoLoe7s+8DQPLEXK/x4PsEyhOOoCNGzfiwIEDrDx7e4T1BAcA3d3dCAsPx/HjyRjtuxIjZ4WCqzHwLi0jEuLepXjcSfsJc+fOQfyRI9DXl65kUFFRgaioKJSUlEi1OTg4ICIiAmPG9L9+nbKhBEeI6qqpqcH8BX4ovXMXY/1fgI3bXLkkIUFPF26dOoTyK8ewZcsW7Nmzh/XOgUIkOADg8/l466238NFHH8HIZjScgl+GodXIfl+vo64cRQl70FxegldeeQXvv/8+tLW1//DnGYbBtWvXcPjwYdTX10u1e3t7IyQkZMhX4rOBEhwhqq25uRmbNm3Gr7/+AqsJUzFh6SaZN1D+X41383EjcR8EnS345OOPsHnzZlZ7bo8oTIJ7JCsrC8+seRY3b5Zg2LjJsJscAHNHjz6VfGBEIjTezceDrGOou3EFo0aPxg//OYTp06f3+f58Ph+nT59GcnIyenokqx5oampi0aJFWLRoEbS0ZCsXoUwowRGiHuLj47HhhRfR3NwCq4mzYOezBMbDx/bpXJGAj9riDFRkJ6PhbgFmzpqFQ99/r1AbSChcggOAnp4e/Pjjj9i7bz8K8vNgYGYFQ3tnGNmMgZGtI7QNzcDR4IERCtDT3ozWqlK0Vpai7UEx2uur4OTsgq1bNmPt2rUSsyVl0dzcjPj4eGRkZEi1mZqaIiQkBN7e3grxLUXeKMERoj4aGxvx1Vdf4cDBz/GgvAzGNqNgYDsORrZjYGQzGpp6RuBwNSAS8NHdUofWyoeft61l19HV1oTZvr7YsnkzQkJCWB+S/D2FTHCPMAyDzMxM/Pzzz7iceQUF+fno6ZHeFVtTUwuukyZhis9krFq1CjNmzJBb4rl79y6ioqJw96509QNHR0dERERgxAj5P6hlEyU4QtSPUChEcnIy4uLikJmVjZLiosdugqGnrw9PD09MmzYVa9euVej1wwqd4H6Pz+fjxo0baGhoQE9PD7S0tGBmZgYnJ6dBHTIUiUTIyspCXFwcmpubJdo4HA6mT5+OoKAgGBsbD1oMQ4kSHCGkq6sL169fR2trK/j8h8Whra2tMXbsWIXrqf0RpUpwbOvu7kZKSgpOnjwJgUAg0aajo4OAgADMmzcPmpp939BUEVGCI4SoAkpw/VBfX4/Y2Fjk5uZKtVlaWiI0NBSTJk1S2udzlOAIIaqAEtwA3Lx5E1FRUXjw4IFUm5OTE8LDw2Fra8tCZANDCY4QogoowQ2QSCRCeno6EhIS0N7eLtHG5XLh6+uLpUuXPnaBuaKiBEcIUQXK8aRQgXG5XMyePRuRkZGYP3++xMNXkUiEM2fOYNeuXThz5gyV5SGEkCFEPTg5q66uRkxMDAoLC6XabG1tER4eDicnJxYi6zvqwRFCVAEluEFSUFCAmJiYx5bfcXd3R2hoKIYNG8ZCZE9GCY4QogrYKdKjBlxdXeHk5ISzZ8/i6NGjEuV3rl27hsLCQsyfPx8BAQHi6gaEEELkh57BDSIej4cFCxYgMjISs2fPllg2IBAIkJKSgl27duHSpUsQiUQsRkoIIaqHhiiHUHl5OaKjo3Hz5k2pthEjRiAiIkIhNiqlIUpCiCqgBDfEGIZBbm4uYmNj0dDQINXu4+ODFStWwNTUlIXoHqIERwhRBfQMbohxOBx4eXnB1dUVp06dwokTJ9Db2ytuv3LlCq5duwZ/f3/4+fmpdFkeQggZTNSDY1lTUxOOHDmCzMxMqTZzc3OEhITA09NzSLf9oh4cIUQVUIJTELdv30Z0dDTu3bsn1TZmzBhERETAwcFhSGKhBEcIUQWU4BSISCRCZmYm4uLi0NraKtHG4XAwY8YMBAUFwcjIaFDjoARHCFEF9AxOgXC5XEybNg0eHh5ITk7G6dOnxWV5GIZBeno6srOzERgYiLlz54LHo/99hBDyR6gHp8Dq6uoQGxuLq1evSrVZWVkhLCwMrq6ucr8v9eAIIaqAEpwSuHHjBqKiolBZWSnV5uLigrCwMNjY2MjtfpTgCCGqgBKckhAKheKyPB0dHRJtXC4Xc+fOxZIlS+RSlocSHCFEFdBWXUpCQ0MDvr6+iIyMxLx586TK8qSmpmLXrl04d+4cbftFCCGgHpzSqqysRExMDIqKiqTa7OzsEB4ejvHjx/fr2tSDI4SoAkpwSoxhGHFZntraWql2T09PhISEwMLCQqbrUoIjhKgCmmeuxDgcDiZNmgRnZ2ekpaXh2LFj6O7uFrfn5uYiPz8ffn5+8Pf3p7I8hBC1Qs/gVACPx8PChQsRGRmJmTNnSpXlSU5Oxu7du3H58mV6PkcIURs0RKmCysrKEBUVhdLSUqm2UaNGISIiAqNGjfrD82mIkhCiCijBqSiGYZCdnY3Y2Fg0NTVJtU+dOhXLly+HiYmJVBslOEKIKqBncCqKw+Fg8uTJcHNzw8mTJ3HixAnw+Xxx++XLl3H16lVxWR5NTU0WoyWEEPmjHpyaaGxsRFxcHLKysqTazM3NERoaCg8PD3A4HOrBEUJUAiU4NVNaWoqoqCiUlZVJtY0bNw4RERFISEigBEcIUXqU4NSQSCRCRkYG4uPjH1uWx9TUFDt37oShoSFLERJCyMBRglNjXV1dOH78OFJTUyEUCiXa9PT0EBgYiDlz5kBDQ4OlCAkhpP8owRHU1tbi8OHDyMvLk2qztrZGWFgYJk6cyEJkhBDSf5TgiFhRURGio6NRVVUl1ebq6oqwsDBYWVmxEBkhhMiOEhyRIBQK8e6776K5uRmdnZ0SbVwuF/Pnz8eSJUugq6vLUoSEENI3tFUXkaChoQELCwtERkZizpw5UmV5Tp06hV27duHChQu07RchRKFRD45I+d91cBUVFYiOjsaNGzekfs7e3h7h4eEYN27cUIdICCFPRAmOSPn9Qm+GYZCXl4eYmBjU19dL/byXlxdCQkJgbm4+lGESQsifoq26yBNxOBy4u7vDxcUFqampOH78OHp6esTtOTk5yM/Px8KFC7Fo0SJoa2uzGC0hhDxEz+BIn2lqasLf3x+RkZGYPn26RBufz8exY8ewe/duXLlyBTQwQAhhGw1REil93Yvy3r17iIqKwp07d6TaHB0dER4ejpEjRw5ChIQQ8mSU4IgUWTZbZhgGWVlZiIuLe2xZnmnTpmH58uUwNjaWd5iEEPKn6BkcGRAOhwMfHx+4ubkhJSUFJ0+elCjLk5GRgdzcXAQEBGD+/PlUlocQMmSoB0ekDKRcTkNDA2JjY5GTkyPVNmzYMISGhsLNzQ0cDmegYRJCyJ+iBEekyKMe3M2bNxEdHY3y8nKptgkTJiA8PBzDhw8f0D0IIeTPUIIjUuRV8FQkEuHSpUuIj49HW1ubRBuHw4Gvry+WLl0KAwODAd+LEEJ+j5YJkEHD5XIxc+ZMREZGws/PT6LsDsMwOHv2LHbt2oW0tDSpcj2EEDJQ1IMjUuTVg/u9mpoaxMTEoKCgQKrNxsYG4eHhcHZ2lvt9CSHqiRIckTJYCe6RwsJCxMTEoLq6WqrNzc0NoaGhsLS0HLT7E0LUAy0TIENu4sSJcHJywtmzZ3H06FGJsjx5eXkoLCzE/PnzERAQ0KeyPEKhELm5udDV1aXCrIQQMXoGR1ihoaGB+fPnIzIyEr6+vhLLBoRCIU6ePIndu3fj/v37T7xWQUEBdu7ciaVLlyI0NPSxO6sQQtQPJTjCKgMDA6xatQpvvvkmxo8fL9HG5XJhbW39xGu4u7tjy5Yt2Lp1K8rLy+Hl5YVPP/10sEImhCgJGqIkCsHOzg6vvPIKrl69isOHD6OhoQErVqzoc2WCoKAgCIVCBAQEYM+ePThw4AB8fX3h5eU1yJETQhQVJTiiMDgcDjw9PeHq6ors7GxMmTLlT3+eYRiJoU0NDQ1MmDABu3fvxqFDhxAVFUUJjhA1RkOUROFoampi2rRpT/y5R8ntu+++Q2Fhofh1gUAAU1NTVFRUUNkeQtQYJTii1BobG5GZmYlJkybh2WefxYEDB7By5UrU1dVhwYIFtOclIWqMhiiJUjMzM8MHH3wAZ2dn/PWvf0VaWhqGDRuG7du3Y926dWyHRwhhESU4opREIhG43IcDEGZmZnjxxRdx+/Zt1NfX48svv+zT+jlCiGqjIUqiVEpKSvDgwQNxchOJRGAYBjo6OnBxcUFDQwO0tLTE7YQQ9UWfAkRpMAyD9957D+vXr8e1a9cAPFwrx+Fw0NbWhqqqKly8eBGtra2U4AghlOCI8mAYBn5+figqKsJbb72F1NRU8X6WycnJOHToEBYsWIBhw4axHCkhRBHQMziiNLhcLp555hnY2Nhg48aNCA8Px4QJE9DZ2Ym8vDwYGhpi9+7djz1XIBAgJycH3t7eEmV7CCGqixIcUToLFixAaWkpDhw4gNTUVAgEAsyaNQsrV66Ep6fnY885c+YMDh8+jBMnTiAiIgITJkwY4qgJIUONyuUQKYNdLkeeBAIBAIDH++Pvaq2trdi1axe6u7vFr7m7uyM0NJSGMwlRYdSDI0qNx+M9cbeSBw8eSL127do1FBYWYsGCBVi8eDF0dHQGK0RCCEtokglRek/arcTZ2RmRkZGYNWuWxM8KBAKcOHECu3btQkZGBkQi0WCHSggZQjRESaQo0xClrMrKyhAdHY1bt25JtY0cORLh4eFwdHRkITJCiLxRgiNSVDnBAQ+XG+Tm5iI2NhYNDQ1S7VOmTMHy5cthamrKQnSEEHmhZ3BE7XA4HHh5ecHV1RWnTp3CiRMn0NvbK27PzMzE1atX4e/vDz8/P2hpabEYLSGkv6gHR6Soeg/u95qamhAXF4crV65ItZmbmyMkJASenp5UmYAQJUMJjkhRtwT3yO3btxEVFYX79+9LtY0bNw7h4eGwt7dnITJCSH9QgiNS1DXBAQ83b87MzERcXBxaW1sl2jgcDmbOnImgoCAYGhqyFCEhpK/oGRwh/4PL5WLatGnw8PBAcnIyTp8+LV5MzjAMLly4gOzsbAQGBmLOnDl/usCcEMIu6sERKercg/u9uro6HD58WFy94H9ZWVkhLCwMrq6uQx8YIeSJKMERKZTgpBUXFyM6OhqVlZVSbRMnTkRYWBisra1ZiIwQ8kcowREplOAeTygU4sKFC0hMTERHR4dEG5fLxdy5cxEYGAg9PT2WIiSE/C/aqouQPtLQ0MCcOXMQGRmJuXPnShRVFYlESE1Nxa5du3D+/Hna9osQBUA9OCKFenB9U1lZiejoaBQXF0u12dnZITw8HOPHj2chMkIIQAmOPAYluL5jGAb5+fk4fPgwamtrpdo9PT0REhICCwsLFqIjRL3RHGdCBoDD4cDNzQ3Ozs44c+YMjh07JlF3Ljc3F/n5+fDz84O/vz+V5SFkCFEPjkihHlz/tba2Ij4+HpcuXZKqU2diYoLly5fDx8dH4vkdIWRwUIIjUijBDdz9+/cRFRWF27dvS7WNGjUKERERGDVqFAuREaI+KMERKZTg5INhGGRnZyM2NhZNTU1S7VOnTsXy5cthYmIy9MERogboGRwhg4TD4WDy5Mlwc3NDSkoKUlJSwOfzxe2XL1/G1atXsXjxYixYsACamposRkuI6qEeHJFCPbjB0djYiLi4OGRlZUm1WVhYIDQ0FO7u7lSWhxA5oQRHpFCCG1ylpaWIiopCWVmZVNv48eMRERGB4cOHsxAZIaqFEhyRQglu8IlEImRkZODIkSNoa2uTaONwOJg9ezaWLVsGAwMDliIkRPnRMzhCWMDlcjFjxgx4enri+PHjSE1NhVAoBPBwcsq5c+eQlZWFpUuXwtfXFxoaGixHTIjyoR4ckUI9uKFXU1OD2NhY5OXlSbXZ2NggLCwMLi4uLERGiPKiBEekUIJjT1FREaKjo1FVVSXV5urqirCwMFhZWbEQGSHKhxIckUIJjl1CoRDnzp1DUlISOjs7Jdo0NDQwb948LFmyBLq6uixFSIhyoP2CCFEwj5JYZGQk5syZI7FsQCgU4tSpU9i1axfS09OpLA8hf4J6cEQK9eAUS0VFBaKiolBSUiLVZm9vj4iICIwdO5aFyAhRbJTgiBRKcIqHYRjk5eUhJiYG9fX1Uu3e3t4ICQmBmZkZC9ERophomQAhSoDD4cDd3R0uLi5ITU3F8ePH0dPTI27Pzs5GXl4eFi5ciEWLFkFbW5vFaAlRDPQMjhAloqmpCX9/f0RGRmLatGkSbXw+H8eOHcNbb72FK1euSJXrIUTd0BAlkUJDlMrj3r17iIqKwp07d6TaHB0dER4ejpEjRw59YIQoAEpwRAolOOXCMAyysrIQGxuL5uZmiTYOh4Np06YhODgYxsbG7ARICEvoGRwhSo7D4cDHx0dclufkyZPisjwMw+DSpUvIzc1FQEAA5s2bR2V5iNqgHhyRQj045dbQ0IDY2Fjk5ORItQ0bNgyhoaFwc3OjsjxE5VGCI1IowamGmzdvIjo6GuXl5VJtTk5OCA8Ph62tLQuRETI0KMERKZTgVIdIJMLFixeRkJAgVZaHy+WKy/Lo6+uzFCEhg4eWCRCiwrhcLmbNmoV33nkHCxYsAJf733/yIpEIZ8+exa5du3DmzBlxuR5CVAX14IgU6sGprurqahw+fBgFBQVSbba2tggPD4eTkxMLkREif5TgiBRKcKqvsLAQ0dHRqKmpkWpzc3NDaGgoLC0tWYiMEPmhZQKEqKGJEyfCyckJZ86cwdGjR9HV1SVuy8vLw/Xr1zF//nwEBARAR0eHxUgJ6T96BkeImtLQ0MCCBQsQGRmJ2bNnSywbEAgESElJwa5du3Dx4kUqy0OUEg1REik0RKmeysvLER0djZs3b0q1OTg4YOXKlXB0dGQhMkL6hxIckUIJTn0xDIOrV6/i8OHDaGhokGqfPHkyVqxYQWV5iFKgZ3CEEDEOhwNPT0+4urri1KlTOHHihERZnqysLFy7dg3+/v5YuHAhtLS0WIyWkD9HPTgihXpw5JGmpibEx8fj8uXLUm1mZmYICQmBl5cXbftFFBIlOCKFEhz5vbt37+K3337DvXv3pNrGjBmDiIgIODg4DH1ghPwJSnBECiU48jgikQhXrlxBXFwcWlpaJNo4HA5mzJiBoKAgGBkZsRQhIZLoGRwhpE+4XC6mTp0Kd3d3nDhxAqdOnYJAIADwcHJKeno6srOzERgYiLlz54LHo48Xwi7qwREAAJ/Px40bN9DY2IiYmBiEhYXBwsIC48ePpw8q8lj19fWIjY1Fbm6uVJulpSXCwsLg6uo6qM/nenp6UFxcjObmZvD5fGhra8PKygpjx46V2HeTqCdKcGqKYRhcvHgRv/76KzKvZKEgPx+9vT1SP6ejo4tJbm6Y4jMZq1evxuTJk2lCAZFQUlKC6OhoPHjwQKrN2dkZ4eHhsLGxkcu9RCIRTp8+jcOHDyPzShaKiq5D8P/FXf+Xnr4+PNw9MG3aVKxZswaurq5yuT9RLpTg1ExXVxf+85//YN/+Ayi6XggDc2sY2jnByHYMjGwcoWVoCq6GJkQCPnraGtFaWYrWqlK0lRejo6kW7h6e2LplM1avXk1TxImYUChEeno6EhIS0NHRIdHG5XIxZ84cBAYG9rssT2trK7799lvsP3AQd26XwtDSDobDJ8Bo+FgYWY+Glr4xOFwNiIQCdLfUPXzfVpaitbwIXa2NmD5jJrZu2YywsDBoaGjI41cmSoASnBrJyMjAmmfX4vbtUliOnwK7yQEwG+0GTh+GchiREPW3clGRfRx1N7Ph5OyCH3/4Dzw9PYcgcqIsOjo6cOzYMZw5c0Zqey99fX0EBQVh5syZMiWZlJQUrHtuPWpqamDlPAN2PgEwcXDu00iCSChA7Y3LqMxKRv2dPEyZMhX/+c8hjB8/XubfjSgfSnBqoKenB2+++SY+/fRTGNuNg1PQdhgMs+/39Vqr7uBGwh601tzDzjfewFtvvUXP6YiEqqoqREdHo6ioSKpt+PDhCA8Px4QJE/70Gu3t7Xj55Zfx7bffwmKMB5yWbYWuSf8rHDTdL8KNxD3obW3A+++/h1deeYWG21UcJTgV19HRgeDly3HmzFmMnrcaI6cHg8Md+BCNSCjA3fMxuHs+CkuXBiLqt9+gra0th4iJqmAYRlyWp7a2Vqrdw8MDISEhGDZsmFRbY2MjFvkvRl5BIcYufA7DvRbJJRkJe7tRmvoj7mckYP369fjyyy9pyFKFUYJTYd3d3VgcEICLly5j0lNvwny0m9zvUVeShYLoD7FokR+OxMVBU1NT7vcgyk0gEIjL8nR3d0u08Xg8+Pn5wd/fX1yWp6WlBb5z5qKk9A7cV78NI9sxco+p8loqrsfvwbNr1uDbb7+lGZcqihKcCnv66acRHRML92fehtnIiYN2n/pbOcj7JRLPP78eX3zxxaDdhyi31tZWJCQk4OLFi/j9x46xsTGWL1+OyZMnw99/MdIzLsNz7QcwtB41aPFU5Z1BYdyn2L17N/7xj38M2n0IeyjBqajY2FiEhobCNeQvsHGbO+j3K886juKkg0hJScHChQsH/X5EeZWVlSEqKgqlpaVSbdXV1UhMTITXs+/C3NF90GMpTfsZ9y5E40pmJry8vAb9fmRoUYJTQXV1dXBycgbPahwmRbwxJA/SGYbB1R93Q6urDkXXC2FsbDzo9yTKi2EY5OTkIDY2Fo2NjQAe9vAOx8bC2m0BnJcNzVZxIqEA2V//BTYmOriam0PPkVUMDTyroF27dqG9uxcTlrw0ZLPEOBwOnJZtRV1DI957770huSdRXhwOB97e3nj77bexbNkyaGpqIuPyZWjqmWDconVDFgdXgwen4O0oKbmB/fv3D9l9ydCgHpyKaW5uho3tcAyfthyOc57q93XunItCaeqP0Ld0wIwtB/t8XknKd2i+noaqykro6ur2+/6qIjs7G4cOHcLZs2dx7949mJubY+rUqXj33XcxduxYtsNTGHl5efDw8IDT0s2w8/bv0zmNd/OR/f3Ox7b5bPgnTOz/fBnC/yqM/Rd4zXdx985tmnCiQmjxkor54Ycf0NvbAzuvRf2+RndLPe6cj4aGlo7M59pPXoz7F+MQFRWFtWvX9jsGVfHRRx/h0qVLCAsLw6RJk1BdXY19+/bB09MTmZmZcHZ2ZjtEhRAdHQ1NHT1Yu/rKfK7D1KUwGj5O4jU9M9m2BrPzWYIrX7+GlJQULF68WOYYiGKiHpyKcXaZiCaOKSZFvN7va+RHf4TejhYwjAi9na0y9eAA4OpPb2G0mRYuZ1zqdwyq4vLly/D29pZYCF9aWgpXV1eEhYXhhx9+YDE6xSASiWBpZQ09xylwWrKxz+c96sFNingd1i4zBxQDwzDI+uoVzPVxRVxc3ICuRRQH9cVVSEtLC4qLrsNivE+/r9F4rxA1RRcxPuCFfl/DfOxk5ORko6dHevNmdTN16lSpXV7GjBkDFxcXFBcXsxSVYrl9+zYa6uswbADvW0FPJ0RCYb/P53A4MBvjhQvp0ksYiPKiIUoV8qhsSX8XxjIiIW4c+wLDPRfC0Gpkv+Mwsh0DAZ+PwsJCmnr9B2pqajBx4uCtTVQmOTk5APr/vr1+ZA+EvV3gcLkwcXDBuEXPwXi47M83jWzH4M65KFRUVMDOzq5fsRDFQj04FZKTkwNNbV3oWwzv1/nlWcnobqnDmPnPDCgOQ+tR4HA1xB9cRNJPP/2EiooKrFy5ku1QFEJOTg4MzKygpSdbJXCuhiYsnadjQsAGuK/ahTHznkF77X1kfbsDrVW3ZY7jUYKl963qoB6cCikrK4O+mXW/9prs7WzF7bSfMdo3Alr6A1vDpqGpDX2TYSgrKxvQdVTRjRs3sGXLFsyYMQNr1qxhOxyFUFZWBh1T2evFmTg4wd3B6b8vTJgCK5cZuHRwK26d+g+81rwj0/W0jSygoalF71sVQj04FdLd3Q0ur3812kpTf4SmrgEcpiyVSywampro6uqSy7VURU1NDZYsWQJTU1PExMTQTvb/r6urCxwN+exhqmduC8sJU9B4Nx+MSLZnchwOBzyeltR+mUR5UQ9OhWhoaIBhRE/+wd/paKjAg+wUTFi8AT1tjeLXRQI+GKEQXU014GnrQVPPsM/XFAgEyM/Px4EDB2SORxlt3vznO2+0trbC398fra2tSE9Ph7W19ROvqS5/u/v374Nh5LdJt46RBRihAMLeHvB09GQ6V8SIqLqACqEEp0L09fUh6O548g/+Tk9rA8CIcOP4l7hx/Eup9gufrYfD1GWYIMPMSlFvF2bNmvXED3510NPTg8DAQJSWliI1NbXPxTbV5W93+fJlPLiQK7frdTZVg8vTknkdp0gogKCnu99Vx4nioQSnQlxcXNDeUAVBTyd42n3/5mpgOQLuT/1d6vVbqT9C2NOFCQEvQFeGhbM9bY3oamuGi4tLn89RVSKRCOHh4cjMzERiYiJ8fPo/FV5Vubi4IPpwHBiRqE/V5R/p7WiRel7cVn0HdSVXYDHWS6ZrAUB7bRkYRkSzW1UIJTgV4uXlBYZh0Fp1R6byOFr6xrB0mib1+v2MBPQCj237M62VpeJ41N2rr76KpKQkLFu2DPX19fj5558l2p9++mmWIlMcXl5e6O3uRGdjJfQt+j49Py/6I2jwtGDi4AQtfWO015XjQfYJaGhqY6zfWpnjaK0sBZfLhbu7u8znEsVECU6FODs7Q1tbB60Pbg5q/bcnaXlwEyamZhgxYgRrMSiKvLw8cDgcJCUlISkpSaqdEtx/vwi1PLgpU4KzdJqKqryzuH8pHoKeTmjpG8PKeToc5zwFPXNbmeNorbiJMePG0xClCqEEp0J4PB4WLlqI81lnMWLG8gHP0pv83Icyn8OIRKgtPIfgwCU0SxDAmTNn2A5B4ZmZmWGyzxTczT8DW/d5fT5vxNRlGDF1mVxiEPZ2o67oIrZt7vtWYUTx0TIBFbNl82a0VN1Bcxk720DVl+aivaEKmzdtYuX+RDlt3bIZ9aVX0VFfwcr9qwsvoLerHS+++CIr9yeDgxKcilmwYAFGjXZEeab0cNhQeHDlKCa5uWPKlCms3J8op7CwMJiYmqE88+iQ35sRiVCRdQwLFy2Co6PjkN+fDB5KcCqGy+Vi5xuvo7rwAupL5Tf1ui9qii6h7mY2/r5zaKqIE9Who6OD1/7yKh5kHRdPUhoq5dnJaK4oxes7dgzpfcngo3I5KohhGMxfsABXrhbC56V90NQZ/IfmvR0tyDy4BX7zZiP+yBFKcERmfD4fXt6TUVbXiskbPgWXJ7/F33+ks6kamQe3Yt2zz+DLL6XXgBLlRglORd2/fx/OLi4wHu2NiSF/kXlNkCwYkRB5v72P3pqbKC4q6tMuHYQ8Tl5eHry8vTF88hJMWLxhUO8l5Pfi6g9vQlfYhuKi6zA07PtOPUQ50BClihoxYgS++/ZbVBeeR0ny14NW44oRCVGUuA/1t7Lx4w8/UHIjA+Lm5obPPv0UZRkJuHMuatDuIxLwURDzETqq7yDqt18puakoWiagwiIiItDc3IyNGzdCJOjBhCUvyXXYR8jvQVHCXtQUXsAPP/yAwMBAuV2bqK+tW7eiubkZu3fvhqCnC2MXPNOvChl/hN/dgcKYj9B8rxAJCfGYMWOG3K5NFAsNUaqBH374Ac+tXw+DYfZwCtre78KS/6u5rBjFiXvR01yLX375GSEhIXKIlJD/+vTTT/Haa6/B1H4CnIK3y7QI/I/U38rBjaT94Ai6kBAfj/nz58shUqKoKMGpiWvXruGZNc+i6Pp1OExfjhHTgqBtaCrzdbpb6nHvYhzKM5Pg5eWNH374D5ycnJ58IiH9kJ6ejjXPrkV5+QOMnB0O+8kBMlW1eKSzsQp3z0ejIvcU5s2fj+++/ZZ22lEDlODUSG9vLz744AN8+OFH6OX3wtJpBoZ7L4KJ/QRoaGr/4XnC3m40lRWhIvsE6m5kQkdXB2/t3o1XX30VPB6NcpPB1dnZiTfffBP79u8HwIXVxFkY7rUIRrZj/nTIXdDdica7+ajISUbdzRwYm5jgow8/xAsvvECzfNUEJTg11NTUhB9++AH79h/A7dJb4HA1YGzlAD1rR2jpm4CrwYNIKEBPeyM6q++gtebhLusTnJyxdctmrF69GkZGRmz/GkTN1NTU4LvvvsOBg5+j4kE5uBo8GNuMhJ7VaGjpGYHD5UEk5KO7pR6dNbfRWvsAAODp5Y2tWzYjIiICurq6LP8WZChRglNjDMPg6tWryM7OfvhfTi4aGhrQy+dDW0sLFhYWmOztBS8vL0yePBmTJk2ib76EdUKhEFlZWcjJyUFOTg6yc6+ipbkZvXw+dLS1YWlpiSk+k+Hl5QUfHx8aQldjlOAIIYSoJFoHRwghRCVRgiOEEKKSKMERQghRSZTgCCGEqCRKcIQQQlQSJThCCCEqiRIcIYQQlUQJjhBCiEqiBEcIIUQlUYIjhBCikijBEUIIUUmU4AghhKgkSnCEEEJUEiU4QgghKokSHCGEEJVECY4QQohKogRHCCFEJVGCI4QQopIowRFCCFFJlOAIIYSoJEpwhBBCVBIlOEIIISqJEhwhhBCVRAmOEEKISqIERwghRCX9H5Q9vBG9HtoSAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "g.es['width'] = 0.5\n",
    "g.es[results[0]]['width'] = 2.5\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ig.plot(\n",
    "    g,\n",
    "    target=ax,\n",
    "    layout='circle',\n",
    "    vertex_color='steelblue',\n",
    "    vertex_label=range(g.vcount()),\n",
    "    edge_width=g.es['width'],\n",
    "    edge_label=g.es[\"weight\"],\n",
    "    edge_color='#666',\n",
    "    edge_align_label=True,\n",
    "    edge_background='white'\n",
    ")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.10.6 ('py310')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "49ec5068d4d6d3736c39d3918a16f1ca551a23384109b69898c01c2015d1370c"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
